
#ifndef TEXTUREBOARD_H
#define TEXTUREBOARD_H

#include <BTexture>
#include <BShape>
#include <BLabel>
#include <BComboBox>
#include <BCheckBox>
#include <BButton>
#include <BLineEdit>

using namespace BWE;

class TexturePanel : public BWidget
{
public:
	TexturePanel(BWidget* parent = 0);
	~TexturePanel();

protected:
	void slotAssetChanged(BObject* object, const BValue& value);
	void slotCollapseButtonClicked(BObject* object, const BValue& value);
	void slotDisableButtonClicked(BObject* object, const BValue& value);
	void slotDeleteButtonClicked(BObject* object, const BValue& value);
	void slotNameEdited(BObject* object, const BValue& value);
	void slotBlendChanged(BObject* object, const BValue& value);
	void slotColorClicked(BObject* object, const BValue& value);
	void slotFilterChanged(BObject* object, const BValue& value);
	void slotWrapChanged(BObject* object, const BValue& value);
	void slotMipmapClicked(BObject* object, const BValue& value);
	void slotFileNameEditFinished(BObject* object, const BValue& value);
	void slotImageButtonClicked(BObject* object, const BValue& value);

protected:
	virtual void styleEvent(const BEvent& event);

private:
	BButton*		_collapseButton;
	BButton*		_enableButton;
	BSpacer*		_nameSpacer;
	BButton*		_deleteButton;
	BLineEdit*		_nameEdit;
	BComboBox*		_blendComboBox;
	BButton*		_colorButton;
	BComboBox*		_filterComboBox;
	BComboBox*		_wrapComboBox;
	BCheckBox*		_mipmapCheckBox;
	BLineEdit*		_fileNameEdit;
	BButton*		_imageButton;

	BShapeHolder	_shape;
	BTextureHolder	_texture;
};

#endif